Method and apparatus for equipment health monitoring

ABSTRACT

The present invention provides for monitoring the health of a system. In one embodiment, a method includes storing benchmark data in a memory, storing a second plurality of system data indicative of system conditions during system operations, determining from the second plurality of system data that the system was operating at a steady state capacity level during at least one sample window of the system operations, associating the steady state capacity level of the at least one sample window with the benchmark data, retrieving first health data for parameters associated with a first health condition from the first plurality of system data, retrieving second health data for parameters associated with the first health condition from the second plurality of system data that were obtained during the at least one sample window, comparing the health data and determining if the second health data is indicative of a health condition.

This a division filed pursuant to 35 U.S.C. §120 and §121 and claims thebenefit of prior U.S. application Ser. No. 11/681,946, filed on Mar. 5,2007 (now U.S. Pat. No. 7,536,276); which is based on U.S. ProvisionalApplication No. 60/820,521, filed on Jul. 27, 2006. The disclosure ofthese patent documents are hereby incorporated by reference in theirentirety for all purposes to the ex tent permitted by law.

FIELD OF THE INVENTION

The present invention relates generally to systems and equipment such assystems and equipment used in heating, ventilation, air conditioning,and other systems or machinery of a building or facility.

BACKGROUND OF THE INVENTION

Heating, ventilation and air-conditioning (“HVAC”) systems are used inall types of commercial, industrial and residential facilities(hereinafter referred to as “buildings”). In general, the HVAC system isdesigned to maintain various predetermined set points, such astemperature. To that end, a system that generates hot air may becontrolled on or off depending on the need for heat in a particularlocation. The supply of conditioned air (hot or cold) may further becontrolled by the use of dampers within the air supply system. In largerbuildings, the dampers may be actively controlled to regulate the supplyof conditioned air.

HVAC systems thus include a wide assortment of components which interactwith or influence other components. Accordingly, while variousparameters on a particular device may be trending out of the normaloperating range, the trend may be the result of a problem occurring inanother component in the same or even a different system. Thus, whilecatastrophic failure of a component produces readily identifiableeffects, a slowly developing problem is more difficult to identify.

Some efforts toward the early identification of potential problemsinclude the monitoring of specific parameters. For example, much can bedetermined about a chiller's performance (and hence, requiredmaintenance) by monitoring its water and refrigerant conditions andnoting any deviation from design or established benchmark values. Basicchiller operating conditions include:

-   -   Condenser and evaporator pressure and corresponding temperature    -   Waterside temperature drop (ΔT)    -   Waterside pressure drop (ΔP)    -   Heat exchanger approach temperature    -   Compressor discharge temperature    -   Purge unit run time        FIG. 1 illustrates design values, in I-P (SI) units, for an        exemplary single stage R-123 centrifugal liquid chiller        operating at full load conditions.

The foregoing parameters can be used to identify many problems to whichchillers are vulnerable. Many basic chiller problems result in adecreased heat transfer between the refrigerant circuit and the watercircuit. In the condenser, or high side, this results in an elevatedrefrigerant pressure, while in the evaporator, or low side, the resultis a lower refrigerant pressure. Increased condensing pressure and/ordecreased evaporating pressure results in increased power consumption bythe compressor motor and decreased system efficiency.

High head pressure (condenser pressure) is a standard safety cutoutfound on most chillers. Frequent chiller trips (i.e., when the chillersafety cutout is triggered, or “tripped”) can occur if the enteringcondenser water temperature habitually gets too high. Chiller trips dueto hindered heat transfer within the condenser usually occur at lessfrequent intervals. An example of this is when the condenser water tubesgradually become fouled.

On the low side, if the compressor inlet guide vanes are inoperative orout of adjustment, the compressor may not match the evaporator load,causing elevated or lowered evaporator pressure and temperature.

The pressure in the evaporator or condenser, which in the exemplarysingle stage R-123 centrifugal liquid chiller are shell and tube heatexchangers, corresponds to a given temperature. At this temperature andpressure, the refrigerant, in a vapor/liquid state, is changing state asit releases heat to or absorbs heat from the circulating water. Thesetemperature/pressure relationships are generally provided on themanufacturer's refrigerant chart for the particular refrigerant. Theoperating temperature/pressure may be useful in determining the healthof the chiller.

While constant monitoring of a system is beneficial, particularly forrapidly escalating situations which have not yet pushed a parameter outof its normal range, merely monitoring the operating conditions do notprovide the desired insight into more slowly developing problems. Theidentification of slowly developing problems is further complicated bythe fact that the loading of equipment varies over time. For example,the temperature on a given day may be cool in the early hours of theday. Thus, systems used for cooling may not be operating at all. As theday progresses, however, the outside temperature may rise, drivingtemperatures in the building upwardly. In response, the cooling systeminitiates or works harder to maintain the water provided to the variousterminals located throughout the building at a constant temperature.

Accordingly, the load on a cooling system may vary from zero to onehundred percent loading. As the load on the system changes, of course,the various operating parameters of the system will vary. This normalvariance can mask developing problems.

In order to correct slowly developing problems before a componentfailure, it is common for many types of systems and/or equipment to besubjected to maintenance, calibrations and/or alignments at regularintervals. These preventative measures are very effective at earlydetection and subsequent avoidance of component or system failures. Ofcourse, the procedures may be quite expensive. Moreover, depending uponthe nature of the particular system, the capacity of the system may becurtailed or even eliminated during the foregoing activities. Theseconsiderations weigh toward a long period of time between the variouspreventative measures. As the time between the various activitiesincreases, however, the chance of an undesired catastrophic failure alsoincreases.

As a consequence, there is a need for apparatus and method that canreduce at least some of the drawbacks and costs identified above. Forexample, there is a need for a method and/or apparatus that reduces thecosts associated with the determination of the health of a device. Thereis a further need for a method and/of apparatus that can be used toascertain the health of a device or system that does not place undueconstraints on the use of the equipment or system. There is yet afurther need for a method and/or apparatus that provides insight intothe health of the equipment or system which is not unduly affected bythe normal variations in the operating parameters of the equipment orsystem.

SUMMARY OF THE INVENTION

The present invention provides for monitoring the health of a system. Inone embodiment, a method of monitoring the health of a system includesstoring a first plurality of system data associated with at least onesteady state capacity level in a memory, obtaining a second plurality ofsystem data indicative of system conditions during system operations,identifying from the second plurality of system data that the system wasoperating at a steady state capacity level during at least one samplewindow of the system operations, associating the steady state capacitylevel of the at least one sample window with the at least one steadystate capacity level, retrieving first health data for parametersassociated with a first health condition from the first plurality ofsystem data, retrieving second health data for parameters associatedwith the first health condition from the second plurality of system datathat were obtained during the at least one sample window, comparing thefirst health data with the second health data, determining if the secondhealth data is indicative of a health condition based upon thecomparison and displaying the results of the determination.

In a further embodiment, a method in accordance with aspects of theinvention includes identifying a plurality of parameters associated witha first condition of a device, establishing a plurality of first steadystate operating conditions for the device, each of the plurality ofsteady state operating conditions at a capacity level of the devicedifferent from the capacity level of each of the other of the pluralityof steady state operating conditions, obtaining first data correspondingto the plurality of parameters during each of the plurality of firststeady state operating conditions, storing the first data, obtainingsecond data corresponding to the plurality of parameters during at leastone sample window during a steady state condition during normaloperations of the device, identifying the system capacity level duringthe at least one sample window, associating the at least one samplewindow with one of the plurality of first steady state operatingconditions based upon the identification, comparing, for each of theplurality of parameters, the second data from the at least one samplewindow with the first data obtained during the associated one of theplurality of first steady state operating conditions, determining thehealth of the device based upon the comparison and displaying theresults of the determination.

In another embodiment, a system for monitoring the health of a systemincludes a plurality of sensors for obtaining a plurality of dataassociated with at least one health condition of the system, a memoryfor storing the plurality of data and for storing commands in the memoryto store, for each of a plurality of system capacity levels, firststeady state data for a plurality of parameters associated with the atleast one health condition of the system, obtain normal, operations datacorresponding to the plurality of parameters during a plurality ofsample windows during steady state conditions of the system, associatethe normal operations data with the first steady state data based upon asample window system capacity level for each of the plurality of samplewindows, compare, for each of the plurality of parameters, the normaloperations data with the associated first steady state data, and displaythe results of the comparison and a processor for executing thecommands.

The above described features and advantages, as well as others, willbecome more readily apparent to those of ordinary skill in the art byreference to the following detailed description and accompanyingdrawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows prior art design conditions for a single stage CFC-11centrifugal chiller at full load;

FIG. 2 shows a block diagram of a building control system in which thesystem and the method of the present invention may be used;

FIG. 3 shows a schematic diagram of a single zone air handler with ahumidifier;

FIG. 4 shows a schematic diagram of a chilled water system used toprovide chilled water to the single zone air handler of FIG. 3 which iscontrolled by a controller of FIG. 2;

FIG. 5 shows a table of sensors which may be used in the chilled watersystem of FIG. 4 along with exemplary sensor ranges and accuracies;

FIG. 6 shows a schematic diagram of the database of FIG. 2 including ahealth monitoring program with various sub modules for use inidentifying data which indicates the percentage of samples whichindicate that a condition is present in the chilled water system of FIG.4;

FIG. 7 shows a flow diagram of a method for determining the health of asystem in accordance with principles of the present invention;

FIG. 8 shows a flow diagram of a health sub module in accordance withprinciples of the present invention;

FIG. 9 shows a flow diagram of a method for displaying a condition of asystem in accordance with principles of the present invention; and

FIGS. 10-13 show various outputs that may be provided by the method ofFIG. 9 when various of the health sub modules of FIG. 6 are executed.

DETAILED DESCRIPTION

FIG. 2 shows an exemplary representative block diagram of a buildingcontrol system 100 that includes a supervisory control system 102, asystem database 104, programmable controllers 108 and 110, and aplurality of configurable controllers 112, 114, 116 and 118. Buildingcontrol system 100 in this embodiment is accessible via a network 120that permits access by a remote browser 122, a laptop computer 124and/or a wireless device 126.

The programmable controllers 108 and 110, which may suitably be anAPOGEE® mechanical equipment controller commercially available fromSiemens Building Technologies, Inc. of Buffalo Grove, Ill., are operablyconnected to the supervisory computer 102 through a control systemnetwork 128. The control system network 128 may be any communicationsprotocol including Ethernet, TCP/IP, BACnet, or a proprietary protocol.The programmable controllers 108 and 110 are connected to monitoring andcontrol devices which in this embodiment include the configurablecontrollers 112, 114, 116, and 118, through a low-level data network 130to provide integrated control, supervision and network managementservices to the configurable controllers 112, 114, 116, and 118.

The supervisory computer 102 in this embodiment includes an INSIGHT®workstation commercially available from Siemens. The supervisorycomputer 102 may be used for database management, alarm management, andmessaging service. The supervisory computer 102 is also used to set upand manage the components in the building control system 100.

Each of the configurable controllers 112, 114, 116 and 118 may beconfigured to provide direct digital control of a variety of mechanicalequipment ranging from zone level control of variable air volume(VAV)/constant volume (CV), heat pumps, unit ventilators and fan coilunits to air distribution units and mechanical units including sparepoint pick up of miscellaneous zone equipment.

In an exemplary configuration shown in FIG. 3, the configurablecontroller 112 is configured to control a single zone air handler with ahumidifier. The single zone system 132 includes the configurablecontroller 112, an air supply header 134, a return header 136, anoutside air (OA) damper 138, a fan 140, a heater 142, a cooler 144 and ahumidifier 146. The single zone system 132 also includes a variety ofsensors including a supply header temperature sensor 148, a supplyheader humidity sensor 150, a zone temperature sensor 152 and a zonehumidity sensor 154.

The cooler 144 is supplied with chilled water from a chilled watersystem 158. The chilled water system 158 includes chiller 160 with acondenser 162, an evaporator 164 and a compressor 166. The condenser 162and the evaporator 164 are shell and tube type heat exchangers.Condenser water is supplied to the condenser 162 through a condenserfeed header 168 and returned through a condenser water return header170. Chilled water is supplied to the cooler 144 and other systems by achilled water supply header 172 and returned to the evaporator 164through a chilled water return header 174.

The operation of the chilled water system 158 is controlled by theconfigurable controller 114. To provide the desired control, a varietyof sensors are provided in the chilled water system 158. Communicationsbetween the various sensors and the controller 114 may be effected inany acceptable manner such as by providing a wireless network or bywiring the sensors to the controller 114.

The sensors in this embodiment include a chilled water supplytemperature sensor 176, chilled water return temperature sensor 178,condenser water supply temperature sensor 180, condenser water returntemperature sensor 182, chilled water flow sensor 184, refrigerantcondensing temperature sensor 186, refrigerant condensing pressuresensor 188, refrigerant liquid temperature sensor 190, refrigerantevaporating pressure sensor 192, amperage or kW consumption sensor 194,compressor discharge temperature sensor 196, chilled water differentialpressure sensor 198, condenser water differential pressure sensor 200,oil temperature sensor 202, oil pressure sensor 204, condenser waterflow sensor 206, outside air dry bulb temperature sensor 208, outsideair dew point temperature sensor 210 and a purge unit run time sensor(not shown). Exemplary sensor ranges and accuracies for the foregoingsensors are provided in FIG. 5.

The sensors associated with the chilled water system 158 are typicallyused to monitor the chilled water system 158 during operations so as toidentify any components that are not operating properly. The dataavailable from the sensors associated with the chilled water system 158are further used by a health monitoring program 214 which in thisembodiment is stored within the system database 104. As depicted in FIG.6, the health monitoring program 214 includes sub modules 216, 218, 220,222, 224, 226, 228, 230 and 232.

The health monitoring program 214 includes instructions which are commonto the sub modules. In one embodiment, the health monitoring programincludes the following commands:

00100 C 00200 C  DEFINING CHILLER NAMING CONVENSION 00300 DEFINE (X,“CHILLER-1”) 00400 C  DEFINING DEM NAMING CONVENSION 00500 DEFINE (Y,“CHL01.DEM1”) 00600 C  DETERMINING IF THE CHILLER IS RUNNING00700 IF(“%X%:OPER CODE” .GE. 8.0 .AND. “%X%:OPER CODE” .LE. 9.0) THENON(“%X% 00800 C  WAIT FOR STARTED CHILLER TO SETTLE OUT00900 IF(“%X%.STATUS” .NE. ON) THEN OFF(“%X%.STARTED”)01000 WAIT(180,“%X%.STATUS”,“%X%.STARTED”,11) 01100 C  CALCULATECOMPRESSOR MOTOR CURRENT 01200 “%X%.CURRENT” = “%Y%:CURRENT”01300 C  CALCULATE COMPRESSOR DISCHARGE TEMPERATURE 01400 “%X%.CDT” =“%X%:COMPDISCH T” 01500 C  CALCULATE PURGE PRESSURE 01600 “%X%.PURGE” =“%X%:PURGE PRESS” 01700 C  CALCULATE CONDENSER WATER DELTA TEMPERATURE01800 “%X%.CWDT” = “%X%:LCNDW TEMP” − “%X%:RCNDW TEMP”01900 C  CALCULATE CONDENSER WATER DELTA PRESSURE 02000 “%X%.CWDP” =“%X%.CWDP” 02100 C  CALCULATE CONDENSER APPROACH 02200 “%X%.CDAP” =“%X%:CONDSAT TEMP” − “%X%:LCNDW TEMP” 02300 C  CALCULATE CONDENSERREFRIGERANT PRESSURE 02400 “%X%.CDRP” = “%X%:COND PRESS”02500 C CALCULATE CONDENSER REFRIGERANT SATURATION TEMP02600 “%X%.CDRST” = “%X%:CONDSAT TEMP” 02700 C DESIGN COND. WATER DELTATEMP 5% TOLERANCES @ 30% LOA 02800 “%X%.D30.CWDT.HI” = “%X%.D30.CWDT” *1.05 02900 “%X%.D30.CWDT.LO” = “%X%.D30.CWDT” * 0.95 03000 C DESIGN CONDWATER DELTA TEMP 5% TOLERANCES @ 40% LOA 03100 “%X%.D40.CWDT.HI” =“%X%.D40.CWDT” * 1.05 03200 “%X%.D40.CWDT.LO” = “%X%.D40.CWDT” * 0.9503300 C DESIGN COND WATER DELTA TEMP 5% TOLERANCES @ 50% LOA03400 “%X%.D50.CWDT.HI” = “%X%.D50.CWDT” * 1.05 03500 “%X%.D50.CWDT.LO”= “%X%.D50.CWDT” * 0.95 03600 C DESIGN COND WATER DELTA TEMP 5%TOLERANCES @ 60% LOA 03700 “%X%.D60.CWDT.HI” = “%X%.D60.CWDT” * 1.0503800 “%X%.D60.CWDT.LO” = “%X%.D60.CWDT” * 0.95 03900 C DESIGN CONDWATER DELTA TEMP 5% TOLERANCES @ 70% LOA 04000 “%X%.D70.CWDT.HI” =“%X%.D70.CWDT” * 1.05 04100 “%X%.D70.CWDT.LO” = “%X%.D70.CWDT” * 0.9504200 C DESIGN COND WATER DELTA TEMP 5% TOLERANCES @ 80% LOA04300 “%X%.D80.CWDT.HI” = “%X%.D80.CWDT” * 1.05 04400 “%X%.D80.CWDT.LO”= “%X%.D80.CWDT” * 0.95 04500 C DESIGN COND WATER DELTA TEMP 5%TOLERANCES @ 90% LOA 04600 “%X%.D90.CWDT.HI” = “%X%.D90.CWDT” * 1.0504700 “%X%.D90.CWDT.LO” = “%X%.D90.CWDT” * 0.95 04800 C DESIGN CONDWATER DELTA TEMP 5% TOLERANCES @ 100% LO 04900 “%X%.D100.CWDT.HI” =“%X%.D100.CWDT” * 1.05 05000 “%X%.D100.CWDT.LO” = “%X%.D100.CWDT” * 0.9505100 C DESIGN COND WATER DELTA PRES 5% TOLERANCES @ 30% LOAD05200 “%X%.D30.CWDP.HI” = “%X%.D30.CWDP” * 1.05 05300 “%X%.D30.CWDP.LO”= “%X%.D30.CWDP” * 0.95 05400 C DESIGN COND WATER DELTA PRES 5%TOLERANCES @ 40% LOAD 05500 “%X%.D40.CWDP.HI” = “%X%.D40.CWDP” * 1.0505600 “%X%.D40.CWDP.LO” = “%X%.D40.CWDP” * 0.95 05700 C DESIGN CONDWATER DELTA PRES 5% TOLERANCES @ 50% LOAD 05800 “%X%.D50.CWDP.HI” =“%X%.D50.CWDP” * 1.05 05900 “%X%.D50.CWDP.LO” = “%X%.D50.CWDP” * 0.9506000 C DESIGN COND WATER DELTA PRES 5% TOLERANCES @ 60% LOAD6100 “%X%.D60.CWDP.HI” = “%X%.D60.CWDP” * 1.05 06200 “%X%.D60.CWDP.LO” =“%X%.D60.CWDP” * 0.95 06300 C DESIGN COND WATER DELTA PRES 5% TOLERANCES@ 70% LOAD 06400 “%X%.D70.CWDP.HI” = “%X%.D70.CWDP” * 1.0506500 “%X%.D70.CWDP.LO” = “%X%.D70.CWDP” * 0.95 06600 C DESIGN CONDWATER DELTA PRES 5% TOLERANCES @ 80% LOAD 06700 “%X%.D80.CWDP.HI” =“%X%.D80.CWDP” * 1.05 06800 “%X%.D80.CWDP.LO” = “%X%.D80.CWDP” * 0.9506900 C DESIGN COND WATER DELTA PRES 5% TOLERANCES @ 90% LOAD07000 “%X%.D90.CWDP.HI” = “%X%.D90.CWDP” * 1.05 07100 “%X%.D90.CWDP.LO”= “%X%.D90.CWDP” * 0.95 07200 C DESIGN COND WATER DELTA PRES5%TOLERANCES @ 100% LOAD 07300 “%X%.D100.CWDP.HI” = “%X%.D100.CWDP” * 1.0507400 “%X%.D100.CWDP.LO” = “%X%.D100.CWDP” * 0.95 07500 C DESIGN CONDAPPROACH 5% TOLERANCES @ 30% LOAD 07600 “%X%.D30.CDAP.HI” =“%X%.D30.CDAP” * 1.05 07700 “%X%.D30.CDAP.LO” = “%X%.D30.CDAP” * 0.9507800 C  DESIGN CONDENSER APPROACH 5% TOLERANCES @ 40% LOAD07900 “%X%.D40.CDAP.HI” = “%X%.D40.CDAP” * 1.05 08000 “%X%.D40.CDAP.LO”= “%X%.D40.CDAP” * 0.95 08100 C  DESIGN CONDENSER APPROACH 5% TOLERANCES@ 50% LOAD 08200 “%X%.D50.CDAP.HI” = “%X%.D50.CDAP” * 1.0508300 “%X%.D50.CDAP.LO” = “%X%.D50.CDAP” * 0.95 08400 C  DESIGNCONDENSER APPROACH 5% TOLERANCES @ 60% LOAD 08500 “%X%.D60.CDAP.HI” =“%X%.D60.CDAP” * 1.05 08600 “%X%.D60.CDAP.LO” = “%X%.D60.CDAP” * 0.9508700 C  DESIGN CONDENSER APPROACH 5% TOLERANCES @ 70% LOAD08800 “%X%.D70.CDAP.HI” = “%X%.D70.CDAP” * 1.05 08900 “%X%.D70.CDAP.LO”= “%X%.D70.CDAP” * 0.95 09000 C  DESIGN CONDENSER APPROACH 5% TOLERANCES@ 80% LOAD 09100 “%X%.D80.CDAP.HI” = “%X%.D80.CDAP” * 1.0509200 “%X%.D80.CDAP.LO” = “%X%.D80.CDAP” * 0.95 09300 C  DESIGNCONDENSER APPROACH 5% TOLERANCES @ 90% LOAD 09400 “%X%.D90.CDAP.HI” =“%X%.D90.CDAP” * 1.05 09500 “%X%.D90.CDAP.LO” = “%X%.D90.CDAP” * 0.9509600 C DESIGN CONDENSER APPROACH 5% TOLERANCES @ 100% LOAD09700 “%X%.D100.CDAP.HI” = “%X%.D100.CDAP” * 1.0509800 “%X%.D100.CDAP.LO” = “%X%.D100.CDAP” * 0.95 09900 C  CALCULATECHILLED WATER DELTA TEMPERATURE 10000 “%X%.CHWDT” = “%X%:RCHW TEMP” −“%X%:LCHW TEMP” 10100 C  CALCULATE CHILLED WATER DELTA PRESSURE10200 “%X%.CHWDP” = “%X%.CHWDP” 10300 C  CALCULATE EVAPORATOR APPROACH10400 “%X%.EVAP” = “%X%:LCHW TEMP” − “%X%:EVAPSAT TEMP”10500 C  CALCULATE EVAPORATOR REFRIGERANT PRESSURE 10600 “%X%.EVRP” =“%X%:EVAP PRESS” 10700 C CALC EVAPORATOR REFRIGERANT SATURATIONTEMPERATURE 10800 “%X%.EVRST” = “%X%:EVAPSAT TEMP” 10900 C DESIGN CHILLWATER DELTA PRES 5% TOLERANCES @ 30% LOAD 11000 “%X%.D30.CHWDP.HI” =“%X%.D30.CHWDP” * 1.05 11100 “%X%.D30.CHWDP.LO” = “%X%.D30.CHWDP” * 0.9511200 C DESIGN CHILL WATER DELTA PRES 5% TOLERANCES @ 40% LOAD11300 “%X%.D40.CHWDP.HI” = “%X%.D40.CHWDP” * 1.0511400 “%X%.D40.CHWDP.LO” = “%X%.D40.CHWDP” * 0.95 11500 C DESIGN CHILLWATER DELTA PRES 5% TOLERANCES @ 50% LOAD 11600 “%X%.D50.CHWDP.HI” =“%X%.D50.CHWDP” * 1.05 11700 “%X%.D50.CHWDP.LO” = “%X%.D50.CHWDP” * 0.9511800 C DESIGN CHILL WATER DELTA PRES 5% TOLERANCES @ 60% LOAD11900 “%X%.D60.CHWDP.HI” = “%X%.D60.CHWDP” * 1.0512000 “%X%.D60.CHWDP.LO” = “%X%.D60.CHWDP” * 0.95 12100 C DESIGN CHILLWATER DELTA PRES 5% TOLERANCES @ 70% LOAD 12200 “%X%.D70.CHWDP.HI” =“%X%.D70.CHWDP” * 1.05 12300 “%X%.D70.CHWDP.LO” = “%X%.D70.CHWDP” * 0.9512400 C DESIGN CHILL WATER DELTA PRES 5% TOLERANCES @ 80% LOAD12500 “%X%.D80.CHWDP.HI” = “%X%.D80.CHWDP” * 1.0512600 “%X%.D80.CHWDP.LO” = “%X%.D80.CHWDP” * 0.95 12700 C DESIGN CHILLWATER DELTA PRES 5% TOLERANCES @ 90% LOAD 12800 “%X%.D90.CHWDP.HI” =“%X%.D90.CHWDP” * 1.05 12900 “%X%.D90.CHWDP.LO” = “%X%.D90.CHWDP” * 0.9513000 C DESIGN CHILL WATER DELTA PRES 5% TOLERANCES @ 100% LOAD13100 “%X%.D100.CHWDP.HI” = “%X%.D100.CHWDP” * 1.0513200 “%X%.D100.CHWDP.LO” = “%X%.D100.CHWDP” * 0.95 13300 C  CALCULATETEMPERATURE ADJUSTED MAXIMUM CAPACITY 13400 “%X%.CAPFT” = −(1.74204) +0.029292 * “%X%:LCHW TEMP” − 0.000067 * “%X%: 13500 “%X%.ADJCAP” =“%X%.MAXCAP” * “%X%.CAPFT” 13600 C  CALCULATE CURRENT LOAD13700 “%X%.CURLOAD” = “%X%.CHWFLOW” * “%X%.CHWDT” / 2413800 C  CALCULATE PART LOAD 13900 “%X%.PLOAD” = “%X%.CURLOAD” /“%X%.ADJCAP” * 100 14000 C  CALCULATE CHILLER EFFICIENCY (KW/TON)14100 “%X%.EFF” = “%Y%:DEMAND” / “%X%.CURLOAD” 14200 C  CALCULATECHILLER COEFFICIENT OF PERFORMANCE 14300 “%X%.COP” = 3.516 / “%X%.EFF”14400 GOTO 100

Each of the sub modules 216, 218, 220, 222, 224, 226, 228, 230 and 232include instructions for assessing the health of the chilled watersystem 158 with respect to a particular condition. This is accomplishedby analysis of various groups of parameters which are affected by theparticular condition.

Specifically, the sub module 216 is configured to provide data which maybe used to determine if chilled water is bypassing the chilled watertubes within the condenser 162. This condition can occur when a leakdevelops between the chilled water return header 174 and the chilledwater supply header 172. More precisely, a division plate (not shown) isused to separate the chilled water return header 174 and the chilledwater supply header 172 within the shell of the condenser 162. Thus, aleak in the division plate (not shown) will allow water to bypass thewater tubes in a heat exchanger and mix with the chilled water that hasbeen cooled by the condenser 162.

More common is for a division plate gasket to be ruptured or missing. Inthe event such a condition develops, then, for a given partial loadlevel, the chill water differential temperature, the chill waterdifferential pressure, the evaporator refrigerant pressure and theevaporator refrigerant saturation temperature will be less than thedesign values for the particular partial load. Additionally, theevaporator approach will be higher than the design value for theparticular partial load.

In one embodiment, the sub module 216 includes the following commands:

00100 C  DEFINE CHILLER NAMING CONVENSION 00200 DEFINE (X, “MHS.CHL1”)00300 C  DEFINES THE % LOAD DESIGN CRITERIA VALUE COMPARISON00400 IF(“%X%.PLOAD” .GT. 25.0 .AND. “%X%.PLOAD” .LE. 35.0) THEN GOSUB1400 “% 00500 IF(“%X%.PLOAD” .GT. 35.0 .AND. “%X%.PLOAD” .LE. 45.0) THENGOSUB 1400 “% 00600 IF(“%X%.PLOAD” .GT. 45.0 .AND. “%X%.PLOAD” .LE.55.0) THEN GOSUB 1400 “% 00700 IF(“%X%.PLOAD” .GT. 55.0 .AND.“%X%.PLOAD” .LE. 65.0) THEN GOSUB 1400 “% 00800 IF(“%X%.PLOAD” .GT. 65.0.AND. “%X%.PLOAD” .LE. 75.0) THEN GOSUB 1400 “% 00900 IF(“%X%.PLOAD”.GT. 75.0 .AND. “%X%.PLOAD” .LE. 85.0) THEN GOSUB 1400 “%01000 IF(“%X%.PLOAD” .GT. 85.0 .AND. “%X%.PLOAD” .LE. 95.0) THENGOSUB 1400 “% 01100 IF(“%X%.PLOAD” .GT. 95.0) THEN GOSUB 1400    “%X%.D100.CHWDT”,“%X%.D100.CHW 01200 GOTO 3200 01300 C SUBROUTINEFOR CONDITIONS WHICH POINT TO HAVING WATER BYPASSING 01400 $LOC1 = 001500 IF(“%X%.CHWDT” .LT. $ARG1) THEN $LOC1 = $LOC1 + 101600 IF(“%X%.CHWDP” .LT. $ARG2) THEN $LOC1 = $LOC1 + 101700 IF(“%X%.EVAP” .GT. $ARG3) THEN $LOC1 = $LOC1 + 101800 IF(“%X%.EVRP” .LT. $ARG4) THEN $LOC1 = $LOC1 + 101900 IF(“%X%.EVRST” .LT. $ARG5) THEN $LOC1 = $LOC1 + 102000 C  DETERMINES THE NUMBER OF FLAGS 02100 IF(“%X%.STARTED” .EQ. OFF.OR. $LOC1 .NE. 5) THEN GOTO 2400 02200 IF($LOC1 .EQ. 5 .AND. SECNDS.LE. 300) THEN GOTO 2600 02300 “%X%.EVAP.TUBE.BYPASS.FLAGS” =“%X%.EVAP.TUBE.BYPASS.FLAGS” + 1 02400 SECNDS = 0 02500 C  DETERMINESTOTAL NUMBER OF SAMPLES 02600 IF(“%X%.STARTED” .EQ. OFF) THEN GOTO 290002700 IF(“%X%.STARTED” .EQ. ON .AND. SECND1 .LE. 300) THEN GOTO 300002800 “%X%.EVAP.TUBE.BYPASS.SAMPLES” =    “%X%.EVAP.TUBE.BYPASS.SAMPLES” + 1 02900 SECND1 = 0 03000 RETURN03100 C  CALCULATES THE DAILY PERCENTAGE OF DATA WHICH MET THE CRITERIA03200 IF(TIME .NE. 23:59) THEN GOTO 370003300 IF(“%X%.EVAP.TUBE.BYPASS.SAMPLES” .NE. 0) THEN GOTO 360003400 “%X%.EVAP.TUBE.BYPASS” = 0 03500 GOTO 370003600 “%X%.EVAP.TUBE.BYPASS” = “%X%.EVAP.TUBE.BYPASS.FLAGS” /    “%X%.EVAP.TUBE.B 03700 IF(TIME .NE. 00:00) THEN GOTO 420003800 SECNDS = 0 03900 SECND1 = 0 04000 “%X%.EVAP.TUBE.BYPASS.FLAGS” = 004100 “%X%.EVAP.TUBE.BYPASS.SAMPLES” = 0 04200 C  END OF PROGRAM04300 GOTO 100

The sub module 218 is configured to provide data which may be used todetermine if condenser water is bypassing the condenser water tubeswithin the evaporator 164. This condition can occur when a leak developsbetween the condenser feed header 168 and the condenser water returnheader 170 in a manner similar to the leak discussed above between thechilled water return header 174 and the chilled water supply header 172within the shell of the condenser 162.

In the event such a condition develops, then, for a given partial loadlevel, the condenser water differential temperature and the condenserwater differential pressure will be lower than the design values for theparticular partial load. Additionally, the condenser approach, thecondenser refrigerant pressure, and the condenser refrigerant saturationtemperature will be higher than the design values for the particularpartial load.

In one embodiment, the sub module 218 includes the following commands:

00100 C  DEFINE CHILLER NAMING CONVENSION 00200 DEFINE (X, “MHS.CHL1”)00300 C  DEFINES THE % LOAD DESIGN CRITERIA VALUE COMPARISON00400 IF(“%X%.PLOAD” .GT. 25.0 .AND. “%X%.PLOAD” .LE. 35.0) THEN GOSUB  1400 “% 00500 IF(“%X%.PLOAD” .GT. 35.0 .AND. “%X%.PLOAD” .LE. 45.0)THEN GOSUB   1400 “% 00600 IF(“%X%.PLOAD” .GT. 45.0 .AND. “%X%.PLOAD”.LE. 55.0) THEN GOSUB   1400 “% 00700 IF(“%X%.PLOAD” .GT. 55.0 .AND.“%X%.PLOAD” .LE. 65.0) THEN GOSUB   1400 “% 00800 IF(“%X%.PLOAD” .GT.65.0 .AND. “%X%.PLOAD” .LE. 75.0) THEN GOSUB   1400 “%00900 IF(“%X%.PLOAD” .GT. 75.0 .AND. “%X%.PLOAD” .LE. 85.0) THEN GOSUB  1400 “% 01000 IF(“%X%.PLOAD” .GT. 85.0 .AND. “%X%.PLOAD” .LE. 95.0)THEN GOSUB   1400 “% 01100 IF(“%X%.PLOAD” .GT. 95.0) THEN GOSUB 1400    “%X%.D100.CWDT”,“%X%.D100.CWDP 01200 GOTO 3200 01300 C  SUBROUTINEFOR CONDITIONS WHICH POINT TO HAVING     WATER BYPASSING 01400 $LOC1 = 001500 IF(“%X%.CWDT” .LT. $ARG1) THEN $LOC1 = $LOC1 + 101600 IF(“%X%.CWDP” .LT. $ARG2) THEN $LOC1 = $LOC1 + 101700 IF(“%X%.CDAP” .GT. $ARG3) THEN $LOC1 = $LOC1 + 101800 IF(“%X%.CDRP” .GT. $ARG4) THEN $LOC1 = $LOC1 + 101900 IF(“%X%.CDRST” .GT. $ARG5) THEN $LOC1 = $LOC1 + 102000 C  DETERMINES THE NUMBER OF FLAGS 02100 IF(“%X%.STARTED” .EQ. OFF.OR. $LOC1 .NE. 5) THEN GOTO 2400 02200 IF($LOC1 .EQ. 5 .AND. SECNDS.LE. 300) THEN GOTO 2600 02300 “%X%.COND.TUBE.BYPASS.FLAGS” =    “%X%.COND.TUBE.BYPASS.FLAGS” + 1 02400 SECNDS = 002500 C  DETERMINES TOTAL NUMBER OF SAMPLES 02600 IF(“%X%.STARTED” .EQ.OFF) THEN GOTO 2900 02700 IF(“%X%.STARTED” .EQ. ON .AND. SECND1 .LE.300) THEN GOTO 3000 02800 “%X%.COND.TUBE.BYPASS.SAMPLES” =    “%X%.COND.TUBE.BYPASS.SAMPLES” + 1 02900 SECND1 = 0 03000 RETURN03100 C  CALCULATES THE DAILY PERCENTAGE OF DATA WHICH MET THE CRITERIA03200 IF(TIME .NE. 23:59) THEN GOTO 370003300 IF(“%X%.COND.TUBE.BYPASS.SAMPLES” .NE. 0) THEN GOTO 360003400 “%X%.COND.TUBE.BYPASS” = 0 03500 GOTO 370003600 “%X%.COND.TUBE.BYPASS” = “%X%.COND.TUBE.BYPASS.FLAGS”/   “%X%.COND.TUBE.B 03700 IF(TIME .NE. 00:00) THEN GOTO 420003800 SECNDS = 0 03900 SECND1 = 0 04000 “%X%.COND.TUBE.BYPASS.FLAGS” = 004100 “%X%.COND.TUBE.BYPASS.SAMPLES” = 0 04200 C  END OF PROGRAM04300 GOTO 100

The sub module 220 is configured to provide data which may be used todetermine the health of the chilled water flow rate. Reduced flow mayoccur as a result of dirty or plugged strainers, closed valves,improperly sized piping, improperly adjusted flow control, plugged tubesor improperly performing pumps. Air in the condenser water circuit willalso cause a low water flow rate.

In the event such a condition develops, then, for a given partial loadlevel, the chilled water differential pressure, the evaporatorrefrigerant pressure, and the evaporator refrigerant saturationtemperature will be lower than the design values for the particularpartial load. Additionally, the chilled water differential temperatureand the evaporator approach will be higher than the design value for theparticular partial load.

In one embodiment, the sub module 220 includes the following commands:

00100 C  DEFINE CHILLER NAMING CONVENSION 00200 DEFINE (X, “MHS.CHL1”)00300 C  DEFINES THE % LOAD DESIGN CRITERIA VALUE COMPARISON00400 IF(“%X%.PLOAD” .GT. 25.0 .AND. “%X%.PLOAD” .LE. 35.0) THEN    GOSUB 1400 “% 00500 IF(“%X%.PLOAD” .GT. 35.0 .AND. “%X%.PLOAD” .LE.45.0) THEN     GOSUB 1400 “% 00600 IF(“%X%.PLOAD” .GT. 45.0 .AND.“%X%.PLOAD” .LE. 55.0) THEN     GOSUB 1400 “% 00700 IF(“%X%.PLOAD” .GT.55.0 .AND. “%X%.PLOAD” .LE. 65.0) THEN     GOSUB 1400 “%00800 IF(“%X%.PLOAD” .GT. 65.0 .AND. “%X%.PLOAD” .LE. 75.0) THEN    GOSUB 1400 “% 00900 IF(“%X%.PLOAD” .GT. 75.0 .AND. “%X%.PLOAD” .LE.85.0) THEN     GOSUB 1400 “% 01000 IF(“%X%.PLOAD” .GT. 85.0 .AND.“%X%.PLOAD” .LE. 95.0) THEN     GOSUB 1400 “% 01100 IF(“%X%.PLOAD” .GT.95.0) THEN GOSUB 1400     “%X%.D100.CHWDT”,“%X%.D100.CHW 01200 GOTO 320001300 C  SUBROUTINE FOR CONDITIONS WHICH POINT TO LOW     CHILLED WATERFLOW 01400 $LOC1 = 0 01500 IF(“%X%.CHWDT” .GT. $ARG1) THEN $LOC1 =$LOC1 + 1 01600 IF(“%X%.CHWDP” .LT. $ARG2) THEN $LOC1 = $LOC1 + 101700 IF(“%X%.EVAP” .GT. $ARG3) THEN $LOC1 = $LOC1 + 101800 IF(“%X%.EVRP” .LT. $ARG4) THEN $LOC1 = $LOC1 + 101900 IF(“%X%.EVRST” .LT. $ARG5) THEN $LOC1 = $LOC1 + 102000 C  DETERMINES THE NUMBER OF FLAGS 02100 IF(“%X%.STARTED” .EQ. OFF.OR. $LOC1 .NE. 5) THEN GOTO 2400 02200 IF($LOC1 .EQ. 5 .AND. SECNDS.LE. 300) THEN GOTO 2600 02300 “%X%.LO.CHW.FLOW.FLAGS” =“%X%.LO.CHW.FLOW.FLAGS” + 1     02400 SECNDS = 0 02500 C  DETERMINESTOTAL NUMBER OF SAMPLES 02600 IF(“%X%.STARTED” .EQ. OFF) THEN GOTO 290002700 IF(“%X%.STARTED” .EQ. ON .AND. SECND1 .LE. 300) THEN GOTO 300002800 “%X%.LO.CHW.FLOW.SAMPLES” = “%X%.LO.CHW.FLOW.SAMPLES” +   102900 SECND1 = 0 03000 RETURN 03100 C  CALCULATES THE DAILY PERCENTAGEOF DATA WHICH MET THE CRITERIA 03200 IF(TIME .NE. 23:59) THEN GOTO 370003300 IF(“%X%.LO.CHW.FLOW.SAMPLES” .NE. 0) THEN GOTO 360003400 “%X%.LO.CHW.FLOW” = 0 03500 GOTO 3700 03600 “%X%.LO.CHW.FLOW” =“%X%.LO.CHW.FLOW.FLAGS” /     “%X%.LO.CHW.FLOW.SAMPLES” 03700 IF(TIME.NE. 00:00) THEN GOTO 4200 03800 SECNDS = 0 03900 SECND1 = 004000 “%X%.LO.CHW.FLOW.FLAGS” = 0 04100 “%X%.LO.CHW.FLOW.SAMPLES” = 004200 C  END OF PROGRAM 04300 GOTO 100

The sub module 222 is configured to provide data which may be used todetermine the health of the condenser water flow rate. Reduced flow mayoccur as a result of dirty or plugged strainers, closed valves,improperly sized piping, improperly adjusted flow control, pluggedtubes, or improperly performing pumps. Air in the condenser watercircuit will also cause a low water flow rate.

In the event such a condition develops, then, for a given partial loadlevel, the condenser water differential pressure will be lower than thedesign values for the particular partial load. Additionally, thecondenser water differential temperature, condenser approach, condenserrefrigerant pressure, and condenser refrigerant saturation temperaturewill be higher than the design value for the particular partial load.

In one embodiment, the sub module 222 includes the following commands:

0100 C  DEFINE CHILLER NAMING CONVENSION 00200 DEFINE (X, “MHS.CHL1”)00300 C  DEFINES THE % LOAD DESIGN CRITERIA VALUE COMPARISON00400 IF(“%X%.PLOAD” .GT. 25.0 .AND. “%X%.PLOAD” .LE. 35.0) THEN   GOSUB 1400 “% 00500 IF(“%X%.PLOAD” .GT. 35.0 .AND. “%X%.PLOAD” .LE.45.0) THEN    GOSUB 1400 “% 00600 IF(“%X%.PLOAD” .GT. 45.0 .AND.“%X%.PLOAD” .LE. 55.0) THEN    GOSUB 1400 “% 00700 IF(“%X%.PLOAD” .GT.55.0 .AND. “%X%.PLOAD” .LE. 65.0) THEN    GOSUB 1400 “%00800 IF(“%X%.PLOAD” .GT. 56.0 .AND. “%X%.PLOAD” .LE. 75.0) THEN   GOSUB 1400 “% 00900 IF(“%X%.PLOAD” .GT. 75.0 .AND. “%X%.PLOAD” .LE.85.0) THEN    GOSUB 1400 “% 01000 IF(“%X%.PLOAD” .GT. 85.0 .AND.“%X%.PLOAD” .LE. 95.0) THEN    GOSUB 1400 “% 01100 IF(“%X%.PLOAD” .GT.95.0) THEN GOSUB 1400    “%X%.D100.CWDT”,“%X%.D100.CWDP 01200 GOTO 320001300 C  SUBROUTINE FOR CONDITIONS WHICH POINT TO LOW    CONDENSER WATERFLO 01400 $LOC1 = 0 01500 IF(“%X%.CWDT” .GT. $ARG1) THEN $LOC1 = $LOC1 +1 01600 IF(“%X%.CWDP” .LT. $ARG2) THEN $LOC1 = $LOC1 + 101700 IF(“%X%.CDAP” .GT. $ARG3) THEN $LOC1 = $LOC1 + 101800 IF(“%X%.CDRP” .GT. $ARG4) THEN $LOC1 = $LOC1 + 101900 IF(“%X%.CDRST” .GT. $ARG5) THEN $LOC1 = $LOC1 + 1 02000 C DETERMINES THE NUMBER OF FLAGS 02100 IF(“%X%.STARTED” .EQ. OFF .OR.$LOC1 .NE. 5) THEN GOTO 2400 02200 IF($LOC1 .EQ. 5 .AND. SECNDS .LE.300) THEN GOTO 2600 02300 “%X%.LO.CW.FLOW.FLAGS” =“%X%.LO.CW.FLOW.FLAGS” + 1 02400 SECNDS = 0 02500 C  DETERMINES TOTALNUMBER OF SAMPLES 02600 IF(“%X%.STARTED” .EQ. OFF) THEN GOTO 290002700 IF(“%X%.STARTED” .EQ. ON .AND. SECND1 .LE. 300) THEN GOTO 300002800 “%X%.LO.CW.FLOW.SAMPLES” = “%X%.LO.CW.FLOW.SAMPLES” + 102900 SECND1 = 0 03000 RETURN 03100 C  CALCULATES THE DAILY PERCENTAGEOF DATA WHICH MET THE CRITERIA 03200 IF(TIME .NE. 23:59) THEN GOTO 370003300 IF(“%X%.LO.CW.FLOW.SAMPLES” .NE. 0) THEN GOTO 360003400 “%X%.LO.CW.FLOW” = 0 03500 GOTO 3700 03600 “%X%.LO.CW.FLOW” =“%X%.LO.CW.FLOW.FLAGS” /    “%X%.LO.CW.FLOW.SAMPLES” * 1 03700 IF(TIME.NE. 00:00) THEN GOTO 4200 03800 SECNDS = 0 03900 SECND1 = 004000 “%X%.LO.CW.FLOW.FLAGS” = 0 04100 “%X%.LO.CW.FLOW.SAMPLES” = 004200 C  END OF PROGRAM 04300 GOTO 100

The sub module 224 is configured to provide data which may be used todetermine if condenser tubes within the condenser 162 are blocked orfouled. This condition hinders the heat transfer between the water inthe tubes and the refrigerant in the shell of the condenser 162. Fouledtubes may be caused by any substance hindering heat transfer includingscale (mineral deposits), algae, mud, rust, corrosion, or grease.Condenser tubes foul much more frequently than evaporator tubes, sincethe latter are part of a closed loop.

In the event such a condition develops, then, for a given partial loadlevel, the condenser water differential pressure will be at or close tothe design value for the particular partial load. The condenser waterdifferential temperature, however, will be lower than the design valuefor the particular partial load. Additionally, condenser approach,condenser refrigerant pressure, and condenser refrigerant saturationtemperature will be higher than the design value for the particularpartial load.

In one embodiment, the sub module 224 includes the following commands:

00100 C  DEFINE CHILLER NAMING CONVENSION 00200 DEFINE (X, “MHS.CHL1”)00300 C  DEFINES THE % LOAD DESIGN CRITERIA VALUE COMPARISON00400 IF(“%X%.PLOAD” .GT. 25.0 .AND. “%X%.PLOAD” .LE. 35.0) THEN   GOSUB 1400 “% 00500 IF(“%X%.PLOAD” .GT. 35.0 .AND. “%X%.PLOAD” .LE.45.0) THEN    GOSUB 1400 “% 00600 IF(“%X%.PLOAD” .GT. 45.0 .AND.“%X%.PLOAD” .LE. 55.0) THEN    GOSUB 1400 “% 00700 IF(“%X%.PLOAD” .GT.55.0 .AND. “%X%.PLOAD” .LE. 65.0) THEN    GOSUB 1400 “%00800 IF(“%X%.PLOAD” .GT. 65.0 .AND. “%X%.PLOAD” .LE. 75.0) THEN   GOSUB 1400 “% 00900 IF(“%X%.PLOAD” .GT. 75.0 .AND. “%X%.PLOAD” .LE.85.0) THEN    GOSUB 1400 “% 01000 IF(“%X%.PLOAD” .GT. 85.0 .AND.“%X%.PLOAD” .LE. 95.0) THEN    GOSUB 1400 “% 01100 IF(“%X%.PLOAD” .GT.95.0) THEN GOSUB 1400    “%X%.D100.CWDT”,“%X%.D100.CWDP 01200 GOTO 320001300 C  SUBROUTINE FOR CONDITIONS WHICH POINT TO FOULED    CONDENSERTUBES 01400 $LOC1 = 0 01500 IF(“%X%.CWDT” .LT. $ARG1) THEN $LOC1 =$LOC1 + 1 01600 IF(“%X%.CWDP” .GT. $ARG2 .AND. “%X%.CWDP” .LT. $ARG3)THEN    $LOC1 = $LOC1 01700 IF(“%X%.CDAP” .GT. $ARG4) THEN $LOC1 =$LOC1 + 1 01800 IF(“%X%.CDRP” .GT. $ARG5) THEN $LOC1 = $LOC1 + 101900 IF(“%X%.CDRST” .GT. $ARG6) THEN $LOC1 = $LOC1 + 1 02000 C DETERMINES THE NUMBER OF FLAGS 02100 IF(“%X%.STARTED” .EQ. OFF .OR.$LOC1 .NE. 5) THEN GOTO 2400 02200 IF($LOC1 .EQ. 5 .AND. SECNDS .LE.300) THEN GOTO 2600 02300 “%X%.FOUL.COND.TUBES.FLAGS” =   “%X%.FOUL.COND.TUBES.FLAGS” + 1 02400 SECNDS = 0 02500 C  DETERMINESTOTAL NUMBER OF SAMPLES 02600 IF(“%X%.STARTED” .EQ. OFF) THEN GOTO 290002700 IF(“%X%.STARTED” .EQ. ON .AND. SECND1 .LE. 300) THEN GOTO 300002800 “%X%.FOUL.COND.TUBES.SAMPLES” =    “%X%.FOUL.COND.TUBES.SAMPLES” +1 02900 SECND1 = 0 03000 RETURN 03100 C  CALCULATES THE DAILY PERCENTAGEOF DATA WHICH MET THE CRITERIA 03200 IF(TIME .NE. 23:59) THEN GOTO 370003300 IF(“%X%.FOUL.COND.TUBES.SAMPLES” .NE. 0) THEN GOTO 360003400 “%X%.FOUL.COND.TUBES” = 0 03500 GOTO 370003600 “%X%.FOUL.COND.TUBES” = “%X%.FOUL.COND.TUBES.FLAGS” /   “%X%.FOUL.COND.TUB 03700 IF(TIME .NE. 00:00) THEN GOTO 420003800 SECNDS = 0 03900 SECND1 = 0 04000 “%X%.FOUL.COND.TUBES.FLAGS” = 004100 “%X%.FOUL.COND.TUBES.SAMPLES” = 0 04200 C  END OF PROGRAM04300 GOTO 100

The sub module 226 is configured to provide data which may be used todetermine if evaporator tubes within the evaporator 164 are blocked orfouled. This condition hinders the heat transfer between the water inthe tubes and the refrigerant in the shell of the evaporator 164 in amanner similar to that described above with respect to the condenser162.

In the event such a condition develops, then, for a given partial loadlevel, the chilled water differential pressure will be at or close todesign parameters for the particular partial load. The chilled waterdifferential temperature, the evaporator refrigerant pressure and theevaporator refrigerant saturation temperature, however, will decreasewith respect to the design values for the particular partial load.Additionally, the evaporator approach will increase with respect to thedesign value for the particular partial load.

In one embodiment, the sub module 226 includes the following commands:

00100 C  DEFINE CHILLER NAMING CONVENSION 00200 DEFINE (X, “MHS.CHL1”)00300 C  DEFINES THE % LOAD DESIGN CRITERIA VALUE COMPARISON00400 IF(“%X%.PLOAD” .GT. 25.0 .AND. “%X%.PLOAD” .LE. 35.0) THEN   GOSUB 1400 “% 00500 IF(“%X%.PLOAD” .GT. 35.0 .AND. “%X%.PLOAD” .LE.45.0) THEN    GOSUB 1400 “% 00600 IF(“%X%.PLOAD” .GT. 45.0 .AND.“%X%.PLOAD” .LE. 55.0) THEN    GOSUB 1400 “% 00700 IF(“%X%.PLOAD” .GT.55.0 .AND. “%X%.PLOAD” .LE. 65.0) THEN    GOSUB 1400 “%00800 IF(“%X%.PLOAD” .GT. 65.0 .AND. “%X%.PLOAD” .LE. 75.0) THEN   GOSUB 1400 “% 00900 IF(“%X%.PLOAD” .GT. 75.0 .AND. “%X%.PLOAD” .LE.85.0) THEN    GOSUB 1400 “% 01000 IF(“%X%.PLOAD” .GT. 85.0 .AND.“%X%.PLOAD” .LE. 95.0) THEN    GOSUB 1400 “% 01100 IF(“%X%.PLOAD” .GT.95.0) THEN GOSUB 1400    “%X%.D100.CHWDT”,“%X%.D100.CHW 01200 GOTO 320001300 C  SUBROUTINE FOR CONDITIONS WHICH POINT FOULED    EVAPORATORTUBES 01400 $LOC1 = 0 01500 IF(“%X%.CHWDT” .LT. $ARG1) THEN $LOC1 =$LOC1 + 1 01600 IF(“%X%.CHWDP” .GT. $ARG2 .AND. “%X%.CHWDP” .LT. $ARG3)THEN    $LOC1 = $LO 01700 IF(“%X%.EVAP” .GT. $ARG4) THEN $LOC1 = $LOC1 +1 01800 IF(“%X%.EVRP” .LT. $ARG5) THEN $LOC1 = $LOC1 + 101900 IF(“%X%.EVRST” .LT. $ARG6) THEN $LOC1 = $LOC1 + 1 02000 C DETERMINES THE NUMBER OF FLAGS 02100 IF(“%X%.STARTED” .EQ. OFF .OR.$LOC1 .NE. 5) THEN GOTO 2400 02200 IF($LOC1 .EQ. 5 .AND. SECNDS .LE.300) THEN GOTO 2600 02300 “%X%.FOUL.EVAP.TUBES.FLAGS” =“%X%.FOUL.EVAP.TUBES.FLAGS”  + 1 02400 SECNDS = 0 02500 C  DETERMINESTOTAL NUMBER OF SAMPLES 02600 IF(“%X%.STARTED” .EQ. OFF) THEN GOTO 290002700 IF(“%X%.STARTED” .EQ. ON .AND. SECND1 .LE. 300) THEN GOTO 300002800 “%X%.FOUL.EVAP.TUBES.SAMPLES” =    “%X%.FOUL.EVAP.TUBES.SAMPLES” +1 02900 SECND1 = 0 03000 RETURN 03100 C  CALCULATES THE DAILY PERCENTAGEOF DATA WHICH MET THE CRITERIA 03200 IF(TIME .NE. 23:59) THEN GOTO 370003300 IF(“%X%.FOUL.EVAP.TUBES.SAMPLES” .NE. 0) THEN GOTO 360003400 “%X%.FOUL.EVAP.TUBES” = 0 03500 GOTO 370003600 “%X%.FOUL.EVAP.TUBES” = “%X%.FOUL.EVAP.TUBES.FLAGS” /   “%X%.FOUL.EVAP.TUB 03700 IF(TIME .NE. 00:00) THEN GOTO 420003800 SECNDS = 0 03900 SECND1 = 0 04000 “%X%.FOUL.EVAP.TUBES.FLAGS” = 004100 “%X%.FOUL.EVAP.TUBES.SAMPLES” = 0 04200 C  END OF PROGRAM04300 GOTO 100

The sub module 228 is configured to provide data which may be used todetermine if non-condensable gases are present in the refrigerantsystem. Generally, temperature and pressure maintained in the condenser162 allows the refrigerant to change state from a vapor to a liquid byreleasing heat to the condenser water. Thus, the refrigerant enters thecondenser 162 as a vapor and it leaves the condenser 162 as a liquid.The temperature difference between the refrigerant in its vapor stateand its leaving liquid state is normally within 2° F. (1° C.). Thepresence of non-condensable gases, however, raises the condenserpressure (and corresponding temperature), resulting in a temperaturedifferential greater than 2° F. (1° C.) between the temperature of therefrigerant in the condenser 162 and the temperature of the liquidrefrigerant leaving the condenser 162.

Other than the temperature differential, the only indication for theabove condition is the run-time of the purge pump. In the event such acondition develops, then, for a given partial load level, the condenserwater differential temperature, the condenser water differentialpressure and the condenser approach will be at or close to the designvalues for the particular partial load level. The temperature differencebetween the condensing gauge temperature and the condensing liquidtemperature will be greater than two degrees and the compressordischarge temperature will be greater than the design value for theparticular partial load level. Additionally, the purge run time orcycles will be higher than the design purge run time or cycles for theparticular partial load level.

In one embodiment, the sub module 228 includes the following commands:

00100 C  DEFINE CHILLER NAMING CONVENSION 00200 DEFINE (X, “MHS.CHL1”)00300 C “PURGE.COUNT” REPRESENTS THE NUMBER OF 00400 C TIMES THE PURGEPRESSURE EXCEEDED 90 PSI. AT THIS    PRESSURE THE 00500 C PURGE UNITWILL ENERGIZE TO EXHAUST NONCONSENSABLES  FROM THE CHILLER 00600 CMOTOR. 00700 IF(“%X%.PURGE” .GE. 90) THEN ON($LOC2) 00800 IF(“%X%.PURGE”.GT. 80 .AND. $LOC2 .EQ. ON) THEN GOTO 1300 00900 IF($LOC2 .EQ. OFF)THEN GOTO 1300 01000 “%X%.PURGECOUNT” = “%X%.PURGECOUNT” + 1 01100 $LOC2= OFF 01200 C  DEFINES THE % LOAD DESIGN CRITERIA VALUE COMPARISON01300 IF(“%X%.PLOAD” .GT. 25.0 .AND. “%X%.PLOAD” .LE. 35.0) THEN   GOSUB 2300 “% 01400 IF(“%X%.PLOAD” .GT. 35.0 .AND. “%X%.PLOAD” .LE.45.0) THEN    GOSUB 2300 “% 01500 IF(“%X%.PLOAD” .GT. 45.0 .AND.“%X%.PLOAD” .LE. 55.0) THEN    GOSUB 2300 “% 01600 IF(“%X%.PLOAD” .GT.55.0 .AND. “%X%.PLOAD” .LE. 65.0) THEN    GOSUB 2300 “%01700 IF(“%X%.PLOAD” .GT. 65.0 .AND. “%X%.PLOAD” .LE. 75.0) THEN   GOSUB 2300 “% 01800 IF(“%X%.PLOAD” .GT. 75.0 .AND. “%X%.PLOAD” .LE.85.0) THEN    GOSUB 2300 “% 01900 IF(“%X%.PLOAD” .GT. 85.0 .AND.“%X%.PLOAD” .LE. 95.0) THEN    GOSUB 2300 “% 02000 IF(“%X%.PLOAD” .GT.95.0) THEN GOSUB 2300    “%X%.D100.CWDT.LO”,“%X%.D100.C 02100 GOTO 500002200 C  SUBROUTINE FOR CONDITIONS WHICH POINT TO NON-    CONDENSABLESIN THE 02300 $LOC1 = 0 02400 IF(“%X%.CWDT” .GT. $ARG1 .AND. “%X%.CWDT”.LT. $ARG2) THEN    $LOC1 = $LOC1 02500 IF(“%X%.CWDP” .GT. $ARG3 .AND.“%X%.CWDP” .LT. $ARG4) THEN    $LOC1 = $LOC1 02600 IF(“%X%.CDAP” .GT.$ARG5 .AND. “%X%.CDAP” .LT. $ARG6) THEN    $LOC1 = $LOC102700 IF(“%X%.CDRP” .GT. $ARG7) THEN $LOC1 = $LOC1 + 102800 IF(“%X%.CDT” .GT. $ARG8) THEN $LOC1 = $LOC1 + 1 02900 C DETERMINES IF PURGE CYCLE IS PRESENT 03000 IF(“%X%.PURGE.AVAL” .EQ. ON)THEN GOTO 3800 03100 C  DETERMINES THE NUMBER OF FLAGS IF PURGE CYCLE ISNOT PRESENT 03200 IF(“%X%.STARTED” .EQ. OFF .OR. $LOC1 .LT. 5) THEN GOTO3500 03300 IF($LOC1 .GE. 5 .AND. SECNDS .LE. 300) THEN GOTO 360003400 “%X%.NONCONDENSABLES.FLAGS” =    “%X%.NONCONDENSABLES.FLAGS” + 103400 “%X%.NONCONDENSABLES.FLAGS” =    “%X%.NONCONDENSABLES.FLAGS” + 103500 SECNDS = 0 03600 GOTO 4400 03700 C  DETERMINES THE NUMBER OF FLAGSIF PURGE IS CYCLE    PRESENT 03800 IF(“%X%.PURGECOUNT” .GE.“%X%.PURGECOUNT.SP”) THEN $LOC1 =  $LOC1 + 1 03900 IF(“%X%.STARTED” .EQ.OFF .OR. $LOC1 .LT. 6) THEN GOTO 4200 04000 IF($LOC1 .GE. 6 .AND. SECND2.LE. 300) THEN GOTO 4400 04100 “%X%.NONCONDENSABLES.FLAGS” =   “%X%.NONCONDENSABLES.FLAGS” + 1 04200 SECND2 = 0 04300 C  DETERMINESTOTAL NUMBER OF SAMPLES 04400 IF(“%X%.STARTED” .EQ. OFF) THEN GOTO 470004500 IF(“%X%.STARTED” .EQ. ON .AND. SECND1 .LE. 300) THEN GOTO 480004600 “%X%.NONCONDENSABLES.SAMPLES” =    “%X%.NONCONDENSABLES.SAMPLES” +1 04700 SECND1 = 0 04800 RETURN 04900 C  CALCULATES THE DAILY PERCENTAGEOF DATA WHICH MET THE CRITERIA 05000 IF(TIME .NE. 23:59) THEN GOTO 550005100 IF(“%X%.NONCONDENSABLES.SAMPLES” .NE. 0) THEN GOTO 540005200 “%X%.NONCONDENSABLES” = 0 05300 GOTO 550005400 “%X%.NONCONDENSABLES” = “%X%.NONCONDENSABLES.FLAGS” /  “%X%.NONCONDENSABL 05500 IF(TIME .NE. 00:00) THEN GOTO 620005600 SECNDS = 0 05700 SECND1 = 0 05800 SECND2 = 005900 “%X%.PURGECOUNT” = 0 06000 “%X%.NONCONDENSABLES.FLAGS” = 006100 “%X%.NONCONDENSABLES.SAMPLES” = 0 06200 C  END OF PROGRAM06300 GOTO 100

The sub module 230 is configured to provide data which may be used todetermine if there is a low refrigerant level in the system. Lowrefrigerant levels may result from a leak or from refrigerant buildingup or “stacking” in the condenser 162. Conditions leading to stackinginclude a condenser water temperature that is below the manufacturer'sminimum design value.

Refrigerant stacking in the condenser will not drive the condenserpressure up. Rather, the temperature in the condenser 162 will sub coolto nearly the entering condenser water temperature. In the event such acondition develops, then, for a given partial load level, the chilledwater differential pressure will be at or close to the design values forthe particular partial load level. The chilled water differentialtemperature, the evaporator pressure, the compressor motor current andthe evaporator refrigerant saturation temperature will be lower than thedesign value for the particular partial load level. Additionally, theevaporator approach and compressor discharge temperature will be higherthan the design value for the particular partial load level.

In one embodiment, the sub module 230 includes the following commands:

00100 C  DEFINE CHILLER NAMING CONVENSION 00200 DEFINE (X, “MHS.CHL1”)00300 C  DEFINES THE % LOAD DESIGN CRITERIA VALUE COMPARISON00400 IF(“%X%.PLOAD” .GT. 25.0 .AND. “%X%.PLOAD” .LE. 35.0) THEN   GOSUB 1400 “% 00500 IF(“%X%.PLOAD” .GT. 35.0 .AND. “%X%.PLOAD” .LE.45.0) THEN    GOSUB 1400 “% 00600 IF(“%X%.PLOAD” .GT. 45.0 .AND.“%X%.PLOAD” .LE. 55.0) THEN    GOSUB 1400 “% 00700 IF(“%X%.PLOAD” .GT.55.0 .AND. “%X%.PLOAD” .LE. 65.0) THEN    GOSUB 1400 “%00800 IF(“%X%.PLOAD” .GT. 65.0 .AND. “%X%.PLOAD” .LE. 75.0) THEN   GOSUB 1400 “% 00900 IF(“%X%.PLOAD” .GT. 75.0 .AND. “%X%.PLOAD” .LE.85.0) THEN    GOSUB 1400 “% 01000 IF(“%X%.PLOAD” .GT. 85.0 .AND.“%X%.PLOAD” .LE. 95.0) THEN    GOSUB 1400 “% 01100 IF(“%X%.PLOAD” .GT.95.0) THEN GOSUB 1400    “%X%.D100.CHWDT”,“%X%.D100.CHW 01200 GOTO 340001300 C  SUBROUTINE FOR CONDITIONS WHICH POINT TO LOW    REFRIGERANTLEVELS 01400 $LOC1 = 0 01500 IF(“%X%.CHWDT” .LT. $ARG1) THEN $LOC1 =$LOC1 + 1 01600 IF(“%X%.CHWDP” .GT. $ARG2 .AND. “%X%.CHWDP” .LT. $ARG3)THEN   $LOC1 = $LO 01700 IF(“%X%.EVAP” .GT. $ARG4) THEN $LOC1 = $LOC1 +1 01800 IF(“%X%.EVRP” .LT. $ARG5) THEN $LOC1 = $LOC1 + 101900 IF(“%X%.CDT” .GT. $ARG6) THEN $LOC1 = $LOC1 + 102000 IF(“%X%.EVRST” .LT. $ARG7) THEN $LOC1 = $LOC1 + 102100 IF(“%X%.CURRENT” .LT. $ARG8) THEN $LOC1 = $LOC1 + 1 02200 C DETERMINES THE NUMBER OF FLAGS 02300 IF(“%X%.STARTED” .EQ. OFF .OR.$LOC1 .NE. 7) THEN GOTO 2600 02400 IF($LOC1 .EQ. 7 .AND. SECNDS .LE.300) THEN GOTO 2800 02500 “%X%.LO.REF.LVL.FLAGS” =“%X%.LO.REF.LVL.FLAGS” + 1 02600 SECNDS = 0 02700 C DETERMINES TOTALNUMBER OF LO.REF.LVL.SAMPLES 02800 IF(“%X%.STARTED” .EQ. OFF) THEN GOTO3100 02900 IF(“%X%.STARTED” .EQ. ON .AND. SECND1 .LE. 300) THEN GOTO3200 03000 “%X%.LO.REF.LVL.SAMPLES” = “%X%.LO.REF.LVL.SAMPLES” + 103100 SECND1 = 0 03200 RETURN 03300 C  CALCULATES THE DAILY PERCENTAGEOF DATA WHICH MET THE CRITERIA 03400 IF(TIME .NE. 23:59) THEN GOTO 390003500 IF(“%X%.LO.REF.LVL.SAMPLES” .NE. 0) THEN GOTO 380003600 “%X%.LO.REF.LVL” = 0 03700 GOTO 3900 03800 “%X%.LO.REF.LVL” =“%X%.LO.REF.LVL.FLAGS” /    “%X%.LO.REF.LVL.SAMPLES” * 1 03900 IF(TIME.NE. 00:00) THEN GOTO 4400 04000 SECNDS = 0 04100 SECND1 = 004200 “%X%.LO.REF.LVL.FLAGS” = 0 04300 “%X%.LO.REF.LVL.SAMPLES” = 004400 C  END OF PROGRAM 04500 GOTO 100

The sub module 232 is configured to provide data which may be used todetermine chiller oil conditions. Oil used in the refrigerant cyclelubricates the moving parts of the compressor 166 and also acts as acooling medium, removing the heat of friction from the compressorbearings. High and low oil temperature, as well as low oil pressure, aresafety cutouts for the chiller 160. If the oil exceeds these safetylimits, these cutouts will stop the compressor 166 automatically.

The oil temperature can get too high if loss of oil cooling occurs or ifa bearing failure causes excessive heat generation. The oil temperaturecan get too low if an oil heater failure occurs. A low oil temperaturecutout will also prevent the compressor 166 from starting after aprolonged shutdown, and before the oil heaters have had time to driveoff the refrigerant dissolved in the oil. The oil pressure can get toolow if oil filters become clogged, oil passageways become blocked, thereis a loss of oil, or if the oil pump fails. This cutout shuts down thecompressor 166 when oil pressure drops below a minimum safe value or ifsufficient oil pressure is not developed shortly after compressorstartup.

Another potential condition related to the chiller oil is excessive oilin the evaporator 164. When the chiller 160 is operating properly, asmall amount of oil mixes and travels with the refrigerant through theentire chiller 160, from the compressor 166 to the condenser 162 to theevaporator 164 and back to the compressor crankcase before that segmentof the system is pumped short of oil. The oil is not always properlymoved from the evaporator 164 through the suction line back to thecompressor 166. When this does not occur, the evaporator 164 becomesoil-logged, decreasing the heat transfer surface of the cooling coil andthus the chiller efficiency.

Accordingly, oil conditions present observables which are similar tothose for low refrigerant in the system, as well as fouled evaporatortubes. Thus, when oil conditions arise, the temperature drop between thechilled water return header 174 and the chilled water supply header 172along with refrigerant pressure decrease while the approach temperatureincreases. In some cases, the refrigerant liquid temperature and thecompressor discharge temperature may be less than the design limit.

In the event such a condition develops, then, for a given partial loadlevel, the chilled water differential pressure will be at or close tothe design values for the particular partial load level. The chilledwater differential temperature, the evaporator refrigerant pressure, thecompressor discharge temperature and the evaporator refrigerantsaturation temperature will be lower than the design value for theparticular partial load level. Additionally, the evaporator approachwill be higher than the design value for the particular partial loadlevel.

In one embodiment, the sub module 232 includes the following commandsfor determining if there is excessive oil in the evaporator:

00100 C  DEFINE CHILLER NAMING CONVENSION 00200 DEFINE (X, “MHS.CHL1”)00300 C  DEFINES THE % LOAD DESIGN CRITERIA VALUE COMPARISON00400 IF(“%X%.PLOAD” .GT. 25.0 .AND. “%X%.PLOAD” .LE. 35.0) THEN   GOSUB 1400 “% 00500 IF(“%X%.PLOAD” .GT. 35.0 .AND. “%X%.PLOAD” .LE.45.0) THEN    GOSUB 1400 “% 00600 IF(“%X%.PLOAD” .GT. 45.0 .AND.“%X%.PLOAD” .LE. 55.0) THEN    GOSUB 1400 “% 00700 IF(“%X%.PLOAD” .GT.55.0 .AND. “%X%.PLOAD” .LE. 65.0) THEN    GOSUB 1400 “%00800 IF(“%X%.PLOAD” .GT. 65.0 .AND. “%X%.PLOAD” .LE. 75.0) THEN   GOSUB 1400 “% 00900 IF(“%X%.PLOAD” .GT. 75.0 .AND. “%X%.PLOAD” .LE.85.0) THEN    GOSUB 1400 “% 01000 IF(“%X%.PLOAD” .GT. 85.0 .AND.“%X%.PLOAD” .LE. 95.0) THEN    GOSUB 1400 “% 01100 IF(“%X%.PLOAD” .GT.95.0) THEN GOSUB 1400    “%X%.D100.CHWDT”,“%X%.D100.CHW 01200 GOTO 330001300 C  SUBROUTINE FOR CONDITIONS WHICH POINT TO OIL IN THE   EVAPORATOR 01400 $LOC1 = 0 01500 IF(“%X%.CHWDT” .LT. $ARG1) THEN$LOC1 = $LOC1 + 1 01600 IF(“%X%.CHWDP” .GT. $ARG2 .AND. “%X%.CHWDP” .LT.$ARG3) THEN   $LOC1 = $LO 01700 IF(“%X%.EVAP” .GT. $ARG4) THEN $LOC1 =$LOC1 + 1 01800 IF(“%X%.EVRP” .LT. $ARG5) THEN $LOC1 = $LOC1 + 101900 IF(“%X%.CDT” .LT. $ARG6) THEN $LOC1 = $LOC1 + 102000 IF(“%X%.EVRST” .LT. $ARG7) THEN $LOC1 = $LOC1 + 1 02100 C DETERMINES THE NUMBER OF FLAGS 02200 IF(“%X%.STARTED” .EQ. OFF .OR.$LOC1 .NE. 6) THEN GOTO 2500 02300 IF($LOC1 .EQ. 6 .AND. SECNDS .LE.300) THEN GOTO 2700 02400 “%X%.OIL.IN.EVAP.FLAGS” =“%X%.OIL.IN.EVAP.FLAGS” + 1 02500 SECNDS = 0 02600 C  DETERMINES TOTALNUMBER OF SAMPLES 02700 IF(“%X%.STARTED” .EQ. OFF) THEN GOTO 300002800 IF(“%X%.STARTED” .EQ. ON .AND. SECND1 .LE. 300) THEN GOTO 310002900 “%X%.OIL.IN.EVAP.SAMPLES” = “%X%.OIL.IN.EVAP.SAMPLES” + 103000 SECND1 = 0 03100 RETURN 03200 C  CALCULATES THE DAILY PERCENTAGEOF DATA WHICH MET THE CRITERIA 03300 IF(TIME .NE. 23:59) THEN GOTO 380003400 IF (“%X%.OIL.IN.EVAP.SAMPLES” .NE. 0) THEN GOTO 370003500 “%X%.OIL.IN.EVAP” = 0 03600 GOTO 03600 03700 “%X%.OIL.IN.EVAP” =(“%X%.OIL.IN.EVAP.FLAGS” /    “%X%.OIL.IN.EVAP.SAMPLES” 03800 IF(TIME.NE. 00:00) THEN GOTO 4300 03900 SECNDS = 0 04000 SECND1 = 004100 “%X%.OIL.IN.EVAP.FLAGS” = 0 04200 “%X%.OIL.IN.EVAP.SAMPLES” = 004300 C  END OF PROGRAM 04400 GOTO 100

Monitoring the health of a system is discussed with reference to themethod 240 of FIG. 7. At the step 242, benchmark data is obtained. Thebenchmark data may be obtained from design values for the system ordevice from the manufacturer of the system or device. Preferably,however, benchmark data for the system or equipment is obtained duringactual operations as this approach develops the most accurate data. Itis further preferred to obtain benchmarking data is at a number ofdifferent system capacity levels.

In accordance with one embodiment, benchmark data for the chilled watersystem 158 is obtained at system capacity levels between about 100% and40%. To obtain the best data, the chilled water system 158 is inspectedto ensure that it is operating at peak condition. When this conditionhas been established, parameters should be collected at various systemcapacity levels. The table below lists the parameters collected in thisexample.

TABLE 1 Trended points for Benchmarking Description Point Type PointName Percent Load Calculation CHL# :PLOAD (PPCL) Maximum CapacityConstant CHL#:MAXCAP Chilled Water Flow Constant CHL#:CHWFLOW ChilledWater Temperature Calculation CHL# .CHWDT Differential Chilled WaterPressure Physical CHL# .CHWDP Differential Evaporator Water ApproachCalculation CHL# .EVAP Temperature (PPCL) Evaporator Saturation PhysicalCHL# :EVAPSAT TEMP Temperature Evaporator Refrigerant Physical CHL#:EVAP PRESS Pressure Condenser Water Temperature Calculation CHL# .CWDTDifferential Condenser Water Pressure Physical CHL# .CWDP DifferentialCondenser Water Approach Calculation CHL# .CDAP Temperature (PPCL)Condenser Saturation Physical CHL# :CONDSAT TEMP Temperature CondenserRefrigerant Physical CHL# :COND PRESS Pressure Compressor DischargePhysical CHL# :COMPDISCH T Temperature Motor Current Physical CHL# :PHACURR

While some of the foregoing parameters, such as chilled water flow,chilled water differential pressure, condenser water differentialpressure, and maximum chiller capacity, may preferably be collectedmanually from equipment or facility data, data identified in Table 1 mayalternatively be obtained from the sensors in the system through thedata network 130.

Initially, the system is configured to run at full load. This may beaccomplished by dropping the chilled water temperature setpoint tocreate a load on the chiller 160. The chiller 160 will gradually respondto the perceived load. Once the chiller 160 has reached a steady statecondition, the various parameters are logged or collected. Preferably,the steady state condition is maintained for at least five minutes toobtain a number of different data samples.

After sufficient data has been collected, the chilled water set pointmay be incrementally raised to replicate system partial loads. In oneembodiment, the set point is modified so as to replicate system partialloads in 10% increments from 100% down to about 40%. As with theprevious sequence, once the chiller has reached a steady statecondition, the various parameters are logged or collected. Preferably,the steady state condition is maintained for at least five minutes toobtain a number of different data samples.

Once all the benchmark data has been collected, the data for theparticular system capacity levels is averaged to obtain a benchmarkvalue for each parameter. This benchmark data for each parameter at eachof the system capacity levels represents a condition of the chilledwater system 158 wherein no degradation of system health has occurred.

Thereafter, at the step 244 the chilled water system 158 is operated ina normal manner. Thus, as the load on the chilled water system 158fluctuates over a period of time, the controller 108 controls thechilled water system 158 to provide the requisite amount of chilledwater at the requisite temperature through the chilled water supplyheader 172. As the chilled water system 158 operates, data indicative ofthe operational parameters is obtained at the step 246. This data may beobtained from the sensors 176-210 and communicated to the controller 108and then through the data network 128 to the supervisory control system102 and stored in the system database 104 or a temporary storage.Alternatively, data may be manually obtained and entered into thedatabase 104. In one embodiment, the data includes a date/time stamp oris otherwise identifiable with the time the data was obtained.

The operational data is thereafter analyzed at the step 248 to identifydata obtained during steady state operations. This analysis may beperformed continuously in near real time or the operational data may bestored for later retrieval and analysis. When the process 240 is run innear real time, an analysis window is set to be open-ended. Thus, asdata becomes available, the data is analyzed. When the process 240 isrun against archived data, a stop time may be identified for theanalysis window. In either event, a start time for the analysis windowmay be identified. In either approach, a minimum data window may be usedto ensure that all of the system parameters are stable. In the presentexample, a steady state data window is identified as five minutes ofdata that indicates steady state conditions within the chilled watersystem 158.

As a part of the step 248, the health monitoring program may check toensure that the steady state conditions are at a sufficiently high levelof capacity to ensure the data obtained is valid. By way of example,when a chiller is run below about 40% capacity, the operating parametersare not consistent. Accordingly, operational data obtained while thechiller is running below a 40% load capacity, in this example, are notused for health monitoring.

The data may nonetheless be useful. One use of the data is to identifythe amount of time that a chiller is operated at various loads. Thisinformation is of use because the efficiency of a particular chiller ishighly dependent upon the load at which the chiller is run. At a loadingless than about 40% of the chiller load capacity, chillers are veryinefficient. Accordingly, for a two chiller system operating at a 60%system load, loading both chillers at 60% is more efficient than loadingone chiller at 85% and loading the second chiller to 35%. Accordingly,this data may be used to assist in optimizing the system efficiency.

In one embodiment, a program establishing a minimum level of capacityfor execution of the sub modules includes the following:

00100 C  DEFINE CHILLER NAMING CONVENSION 00200 DEFINE (X, “MHS.CHL1”)00300 C  DETERMINES IF LOW LOAD CONDITIONS EXIST 00400 $LOC1 = 000500 IF(“%X%.PLOAD” .LE. 25.0) THEN $LOC1 = $LOC1 + 1 00600 C DETERMINES THE NUMBER OF FLAGS 00700 IF(“%X%.STARTED” .EQ. OFF .OR.$LOC1 .NE. 1) THEN GOTO 1000 00800 IF($LOC1 .EQ. 1 .AND. SECNDS .LE.300) THEN GOTO 1200 00900 “%X%.LOW.LOAD.FLAGS” = “%X%.LOW.LOAD.FLAGS” +1 01000 SECNDS = 0 01100 C  DETERMINES TOTAL NUMBER OF SAMPLES01200 IF(“%X%.STARTED” .EQ. OFF) THEN GOTO 1500 01300 IF(“%X%.STARTED”.EQ. ON .AND. SECND1 .LE. 300) THEN GOTO 170001400 “%X%.LOW.LOAD.SAMPLES” = “%X%.LOW.LOAD.SAMPLES” + 1 01500 SECND1 =0 01600 C  CALCULATES THE DAILY PERCENTAGE OF DATA WHICH MET THECRITERIA 01700 IF(TIME .NE. 23:59) THEN GOTO 220001800 IF(“%X%.LOW.LOAD.SAMPLES” .EQ. 0) THEN GOTO 210001900 “%X%.LOW.LOAD” = “%X%.LOW.LOAD.FLAGS” /   “%X%.LOW.LOAD.SAMPLES” * 100 02000 GOTO 2200 02100 “%X%.LOW.LOAD” = 002200 IF(TIME .NE. 00:00) THEN GOTO 2700 02300 SECNDS = 0 02400 SECND1 =0 02500 “%X%.LOW.LOAD.FLAGS” = 0 02600 “%X%.LOW.LOAD.SAMPLES” = 002700 C  END OF PROGRAM 02800 GOTO 100

If the criteria for a steady state data window are not met, then theprocess proceeds to the step 250 and waits for additional data. If,however, the criteria for a steady state data window are met, then asteady state data flag is set for the data sample window at the step 252and at the step 254 the health sub modules are executed as discussed inmore detail below. After the health sub modules have been executed, themethod proceeds to the step 256.

At the step 256, the method determines if any additional operationaldata is available for analysis. If more data is available, then theprocess 240 proceeds to the step 258 and determines if the analysiswindow is still open. If the data analyzed is the last data availablefor analysis in the identified analysis window, then the process 240proceeds to the step 260 and ends. If, however, the analysis window isstill open, then the process 240 returns to the step 246 and obtains theadditional data and the step 248 is repeated.

If there is no additional data or an insufficient amount of data at thestep 256, then the method determines whether or not the system is stillbeing operated at the step 262. If the system is not being operated andthere is no additional data, then either the process 240 is being run onarchived data and all data has been processed or the process had beenrunning in near real time but the system was just shut down. In eitherevent, there is no further data to evaluate and the process 240 ends atthe step 260.

If the system is still being operated at the step 262 the processproceeds to the step 264 and determines if the analysis window is stillopen. If the data analyzed is the last data available for analysis inthe identified analysis window, then the process 240 proceeds to thestep 260 and ends. If, however, the analysis window is still open, suchas when the process 240 is run in near real time, then the process 240returns to the step 250 and waits for additional data.

The execution of the health sub modules 216-232 of step 254 aredescribed with reference to the method 270 of FIG. 8. The method 270initially determines the capacity level at which the system was operatedduring the steady state sample window identified at the step 248 of FIG.7 at the step 272. In accordance with this example, benchmark data wasobtained in step 242 for system capacity levels from 100% to 40% in 10%increments and the steady state data window identified at the step 248is correlated with the closest benchmarked capacity level. Thus,operational data obtained while the chilled water system 158 wasoperating at 74% capacity may be correlated with benchmark data obtainedat system capacity level of 70%.

At the step 274, the operational data for the particular sample windoware retrieved. If the process 270 is operating on archived data, thendata stored in the database 104 for a parameter associated withidentifying the condition of the particular health sub module isretrieved. If the process 270 is running in real-time, then the data maybe in a temporary storage, register, or the like. The benchmark data forthe parameter associated with identifying the condition of theparticular health sub module for the capacity level at which the systemwas operated during the steady state window is retrieved at the step276. The data is correlated at the step 278 and a comparison flag is setat the step 280.

The method at the step 282 then determines if the parameter dataretrieved in the step 274 meets a criterion for a condition beingpresent based upon the benchmark data retrieved at the step 276. If thecriterion is not met, then the method skips to the step 286. If thecriterion is met, then at the step 284 a parameter flag is set and themethod continues to the step 286.

If additional data is available for comparison at the step 286, eitherfor the parameter just analyzed or for another parameter associated withidentifying the condition of the particular health sub module, then thesystem returns to the step 274. If there is no additional data to beanalyzed with respect to the condition of the particular health submodule, then the method proceeds to the step 288 and compares the numberof comparison flags set at the step 280 with the number of parameterflags set at the step 284. If there are fewer parameter flags thancomparison flags, then all of the parameters associated with thecondition of the particular health sub module did not meet the criteriafor determining that the health condition was present. Accordingly, atthe step 290, the steady state data sample window is identified as nothaving the condition present and the results of the analysis are saved.

If, however, there is an equal number of comparison flags and parameterflags, then all of the parameters associated with the health conditionof the particular health sub module met the criteria for determiningthat the health condition was present. Accordingly, at the step 292, thesteady state data sample window is identified as having the healthcondition present and the results of the analysis are saved. In eitherevent, the method ends at the step 294.

The results of the analysis of FIG. 7 and FIG. 8 may be used in a numberof ways. For example, the results may be displayed in the form of aprint out or a visual display. The results may also be used to providealarms and/or to facilitate further analysis for a particular condition.The method depicted in FIG. 9 may be used to generate displays andalarms and to facilitate further analysis.

With reference to FIG. 9, the process 300 begins with the step 302wherein the analysis window for the particular condition which isdesired to be trended is identified. When the process 300 is run inreal-time, the analysis window set at the step 302 in this embodiment isthe same analysis step discussed above with respect to the step 246 ofFIG. 7 and the analysis window is set tot be open ended. At the step 304the granularity or data interval of the display is established. By wayof example, an analysis window of two months may be selected with a timeinterval of one day. The analysis window may be a fixed two month windowor the analysis window may be open ended so as to provide near real timedata along with the past two months worth of data.

Next, the condition present data for the first interval, which wasstored at the step 292 of FIG. 8, is obtained at the step 306.Additionally, the number of steady state data sample windows during theinterval is obtained at the step 308. In this embodiment, this isaccomplished by determining the number of steady state data flags thatwere set at the step 252 for data sample windows which occurred duringthe interval.

At the step 310, the number of condition present data from the step 306is divided by the number of flags retrieved at the step 308. Thisgenerates a percentage of the steady state operating windows during theinterval during which all of the parameters indicative of a particularcondition were present. This data is stored at the step 312 and at thestep 314, the display of the percentage data is updated. If there areadditional intervals in the window to be analyzed at the step 316, thenthe method proceeds to the step 306 and retrieves the condition presentdata for the next interval. If all of the intervals for the identifiedwindow have already been analyzed, the process ends at the step 318.

In this embodiment, a display is rendered visually at the supervisorycontrol system in the form of a chart identifying the percentage of datathat met the criteria for the particular condition being evaluated.FIGS. 10-13 depict exemplary results of the method of FIG. 9. FIG. 10depicts a printout of the percentage of daily samples that met thecriteria for having fouled condenser tubes. FIG. 11 depicts a printoutof the percentage of daily samples that met the criteria for having lowrefrigerant level. FIG. 12 depicts a printout of the percentage of dailysamples that met the criteria for having noncondensables in the system.FIG. 13 depicts a printout of the percentage of daily samples that metthe criteria for having oil in the evaporator.

In addition to providing a display, the health monitoring program 214may be programmed to provide alerts if predetermined percentages of datastored at the step 294 are indicative of a condition. By way of example,a warning may be provided if 70% of the comparisons exceed an acceptancecriteria based upon the benchmark data and an alarm may be provided if90% of the comparisons exceed the acceptance criteria.

Moreover, the display of the health data generated by the healthmonitoring program as shown in FIGS. 10-13 may be used to understand thecondition of a system even if no single parameter exceeds its normaloperating range. By way of example, a review of the data presented inFIG. 13 reveals a steady overall upward trend in the percentage of dailysamples that met the criteria for having oil in the evaporator.Therefore, even if there has not been an alarm based upon a sensordetecting an out of limits condition, the operators can determine thatthe system will soon experience such alarms if corrective action is nottaken.

It will be appreciated that the above describe embodiments are merelyexemplary, and that those of ordinary skill in the art may readilydevise their own modifications and implementations that incorporate theprinciples of the present invention and fall within the spirit and scopethereof.

1. A computer implemented method of monitoring the health of a systemcomprising: storing a first plurality of system data associated with atleast one steady state capacity level in a memory, wherein the memory isaccessible by a building supervisory controller; obtaining a secondplurality of system data indicative of system conditions during systemoperations; identifying from the second plurality of system data thatthe system was operating at a normal operating level during at least onesample window of the system operations; associating the normal operatinglevel of the at least one sample window with the at least one steadystate capacity level; retrieving first health data for parametersassociated with a first health condition from the first plurality ofsystem data; retrieving second health data for parameters associatedwith the first health condition from the second plurality of system datathat were obtained during the at least one sample window; comparing thefirst health data with the second health data; determining by thebuilding supervisory controller if the second health data is indicativeof a health condition based upon the comparison; and displaying theresults of the determination.
 2. The method of claim 1, wherein: the atleast one sample window comprises a plurality of sample windows; anddetermining comprises: determining, for one of the plurality of samplewindows, the number of data of the second health data compared withfirst health data; determining, for the one of the plurality of samplewindows, the number of data of the second health data that indicate ahealth condition; and determining that the second health data isindicative of a health condition for the one of the plurality of samplewindows if the number of data of the second health data that werecompared with first health data for the one of the plurality of samplewindows is the same as the number of data of the second health dataduring the one of the plurality of sample windows that are indicative ofa health condition.
 3. The method of claim 1, wherein: storing a firstplurality of system data comprises storing, for each of a plurality ofsteady state capacity levels, an associated first plurality of systemdata; identifying that the system was operating at a steady statecapacity level during at least one sample window of the systemoperations comprises identifying that the system was operating at asteady state capacity level during a plurality of sample windows;associating the normal operating level comprises associating the normaloperating level of each of the plurality of sample windows with one ofthe plurality of steady state capacity levels; retrieving first healthdata comprises retrieving first health data for parameters associatedwith a first health condition from the first plurality of system datafor each of the associated one of the plurality of steady state capacitylevels; retrieving second health data comprises retrieving, for each ofthe plurality of sample windows, second health data for parametersassociated with the first health condition from the second plurality ofsystem data that were obtained during the respective one of theplurality of sample windows; comparing comprises comparing, for each ofthe plurality of sample windows, the first health data with the secondhealth data; and determining comprises determining, for each of theplurality of sample windows, that the second health data is indicativeof a health condition during a particular sample window of the pluralityof sample windows if the number of data of the second health data thatwere compared with first health data for the particular sample window isthe same as the number of data of the second health data during theparticular sample window that are indicative of a health condition. 4.The method of claim 3, determining further comprising: identifying thetotal number of the plurality of sample windows; identifying the numberof the plurality of sample windows indicative of a health condition; andgenerating a percentage of the total number of the plurality of samplewindows indicative of a health condition.
 5. The method of claim 4,wherein generating a percentage comprises: generating a percentage ofthe total number of the plurality of sample windows indicative of ahealth condition for each data interval of an analysis window.
 6. Themethod of claim 5, wherein displaying comprises displaying the resultsof the determination in near real time.
 7. The method of claim 5,further comprising: providing an alert if the percentage exceeds analert threshold; and providing an alarm if the percentage exceeds analarm threshold.
 8. The method of claim 1, wherein storing a secondplurality of system data indicative of system conditions during systemoperations comprises: placing the system in a normal operating mode; andstoring the second plurality of system data indicative of systemconditions during normal system operations.
 9. The method of claim 1,further comprising: obtaining the first plurality of system dataassociated with at least one steady state capacity level from designparameters for the system.
 10. The method of claim 1, furthercomprising: operating the system at the at least one steady statecapacity level; and obtaining the first plurality of system data whilethe system is operated at the at least one steady state capacity level.11. The method of claim 1 wherein comparing comprises: comparing, foreach of the parameters associated with a first health condition, each ofthe second health data corresponding to the parameter with the firsthealth data corresponding to the parameter.
 12. The method of claim 11,wherein the first health condition comprises one of the group of healthconditions consisting of: noncondensables in a chiller system; lowrefrigerant; oil in an evaporator; fouled condenser tubes; fouledevaporator tubes; low condenser water flow rate; low chilled water flowrate; water bypassing condenser tubes; and water bypassing evaporatortubes.